如果你是個擅長其他領域的人,對於「機器學習」只是想單純瞭解一下,到底什麼意思?機器學習的概念是什麼?在網路上你會看到一堆【每個字你都看得懂,但你就是不知道什麼意思】的文章。這也是為什麼AI、機器學習,這領域,始終給人很大距離感的原因。(相比之下,Big Data真是很親民呢~)
事實上,它們的概念並沒有那麼難理解,如果連概念都講不清楚,就更別提實際執行操作了。小馬今日同樣要以一碗蘿蔔排骨湯,來說明這件事。
隨機森林、神經網路、梯度下降等等,以下的說明不會再用這些「還必須再解釋過的專有名詞」來解釋機器學習這個專有名詞。但當然,這篇也不會是要教你實作機器學習,而且,機器學習也不可能是兩三篇文章就能學會實作的;不過有幾個是前面文章已經提過,且看字眼是較容易理解的名詞:訓練資料、測試資料、驗證資料、機率、迴圈、大數據
(先對大數據的本質有理解,才能往後跨入機器學習的領域,這也是先談大數據,才談機器學習的原因)。
小馬解讀的機器學習:
人工要花非常大量時間才能完成的事情,
機器可以遵循某個學習脈絡,以較短的時間完成。
要符合這句話,事實上,你手邊正在跑的SQL、Python、R,就已經是這件事的雛形,試著這樣想,如果你不是透過這些程式碼去執行,而是透過其他更人工的方式,例如將所有交易明細資料下載放進Excel(可能還得開好幾個分頁),去列出每個人的最近一次交易和總交易額,你必須花多久的時間?而如果你用SQL寫,你只需要花多少時間?
機器學習同理,也是靠程式語言,去解決原本必須大量人工作業的事情。只是這個所謂大量,指的並不是做了非常多樣成千上萬種不同的工作;反而是,只做同一個工作,只是以不同的方式重複做成千上萬次。換句話說,其實我們已經限制了機器學習能活動的範圍和能做的事情。(這邊為AI埋個小梗,限制範圍是很重要的關鍵字。)
現在,我想要做出一碗擁有最佳食材的蘿蔔排骨湯:
第一市場、第二市場、第三市場,共3個菜市場。
菜市場裡面有許多的菜販和豬肉攤,
現在只能去其中1個市場的其中1攤菜販買蘿蔔和其中1攤豬肉攤買排骨
我如何讓自己買到蘿蔔和排骨的品質,是最好的?
四句話,事實上我做了四個限制:
固定菜市場的數量
只能探索存在於菜市場範圍內的攤販
只能選擇其1
限制這個命題的目標是食材品質而不是美味與否
我們仔細想想該如何【完美】達成最後的目標【挑選最佳(第一名)的食材品質】:
「小馬,別鬧了,別說連續30天早中晚各買1次,要買遍3個菜市場的所有菜販和豬肉攤,就已經是難做到的事了......」
正是!所以你需要的不是自己去買,而是叫機器去買,
這是機器學習的第一要務:以機器替代這大量的人工。
而事實上......
步驟1~4在做的事情,就是【訓練資料】的概念。
步驟5,就是【測試資料】。
步驟6,就是【驗證資料】,這時候才真正開始實際執行。
連續30天、10天做同樣的事情,就是【迴圈】,也就是機器學習的【學習(learning)】過程。
可以想像,縱使最後你決定了某攤,知道它經常出現最高品質的食材,實際上,你還是可能某天運氣差買到較低品質的食材,這就是【機率】。也就是機器學習給出的的【測試準確率(testing accuracy)】。
菜市場太大攤販太多,無法以人工執行的狀況,就是【大數據】(可以想像如果只有1個市場而且只有2攤,是不是自己很快就能確認哪攤品質較好呢?)
上面這一整套,就是【機器學習】的概念,很簡單吧?
如果,你想要更進一步了解它的運作模式,包括神經網路和梯度下降等等,這兩個影片用了非常視覺化的方式說明,更往後還說明了模型建構和運算邏輯。在踏入機器學習的實作領域前,或是已經踏入但不是太清楚自己到底在做什麼以及為什麼要這樣做的人,這四部影片講解了蠻完整的觀念,是小馬廣泛看下來,CP值最高的一組解說,這邊推薦給各位。
機器學習沒什麼番外篇好寫欸......
什麼...都沒發現前面的番外篇都有扣緊當天主題嗎?
在前公司最常murmur的話就是,每每換會議室又沒連到網路時:
連WIFI都不穩定,阿說想要做機器學習和AI?
來講前公司最接近機器學習的一次好了。
可能公司名氣並非主流,不像台積電、鴻海、華碩等等,所以來面試的...憑良心講...,素質都並非頂尖(當然,小馬也承認自己只是個普通人罷了)。我面試人是用一份實作題目,現場對談對答詢問的模式,例如請面試者看一份sample data,並請他自己編造一個,符合這份資料的故事,每個欄位及內容在他故事中代表的意義;請面試者看一道題目,並清楚告訴他題目有很多定義和前提沒有講,他必須問我,問出這些定義和前提,才有辦法回答答案等等等等。有些題目有標準答案,有些沒有,端看面試者回答的內容。
而我很感慨的是,從某年的八月起我部門這職缺一直開著,但都找不到適合的人選,整份題目下來,沒有人能拿到80分以上,而面試者也常常是很受挫的回去。就在我思考著是否要調整難易度的同時,有個傢伙出現了,以一種「這題目也太簡單了,有什麼陷阱嗎?」的態度,幾乎拿到滿分。有幸與這位成為夥伴,也已經是隔年二月的事。
順便一提,就是他做出「抗菌洗手乳」和「親子票券」的。
儘管我很了解公司文化,還是讓他去做了這件事:預測新商品銷量。當然,我也是抱著一絲期待,看在時空背景轉換至今,商品部那群人能不能用比較開放的心態來看數據分析。
報告是由我家大老闆先看完之後,覺得可行,去知會商品部同事,當天,幾乎所有商品部門的人都到場了,連同他們家大老闆。會議上大家討論得非常熱絡,提出的問題或質疑也都被我們早就準備好,直接迎刃而解。一直到了最後......
「所有的模型、推測、預測等等,都沒有100%正確的,現在做出來的這套,如果可以不斷地丟資料進去訓練,總有一天,它會趨近於90%的準確度,而相信這樣的正確率,已經能超過以人為經驗判斷的正確率。但這必須要商品部各位同仁與我們配合,將較近期的資料,持續更新給我們。」
然後......
然後,就沒有然後了。
(不了解的可看day13這篇資料分析(Data Analysis) -5.實際執行)
也因此,我前公司在這領域發展到的進度(等於我部門發展到的進度),就是僅止於數據分析。雖然如上述,我們曾經想要發展機器學習,但發現能做的主題,不外乎商品銷售預測、進貨分析那段,卻又卡了十足的政治議題而窒礙難行,所以我的番外篇寫到這裡,已經越來越單薄了。
明天也是花一天來講AI的概念,更根本不可能有番外篇可以寫了。
讓我今晚好好思考一下明天要寫什麼。